unit MantenimientoProvincias;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, BaseMantenimiento, XPMan, StdCtrls, Buttons, Grids, DBGrids,
  ComCtrls, Mask, DBCtrls,CustomMsgBox, ExtCtrls, ToolWin;

type
  TfrmMantenimientoProvincias = class(TfrmBaseMantenimiento)
    Label1: TLabel;
    Label2: TLabel;
    btnNuevo: TBitBtn;
    edtCodigoProvincia: TEdit;
    edtDescripcionProvincia: TEdit;
    procedure FormShow(Sender: TObject);
    procedure btnEditarClick(Sender: TObject);
    procedure btnGuardarClick(Sender: TObject);
    procedure btnCancelarClick(Sender: TObject);
    procedure edtFiltroKeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure btnAceptarClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure btnNuevoClick(Sender: TObject);
    procedure btnBajaClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmMantenimientoProvincias: TfrmMantenimientoProvincias;

implementation

uses Datos, Math, NuevaProvincia;

{$R *.dfm}

procedure TfrmMantenimientoProvincias.FormShow(Sender: TObject);
begin
  inherited;
  Label3.Caption:='Provincia:';
  frmDatos.tblProvincia.Active:=true;
  DBGrid1.DataSource:=frmDatos.dsProvincia;
  frmDatos.tblProvincia.IndexFieldNames:='cod_provincia';

  btnEditar.Visible:=true;
  btnBaja.Visible:=true;
  btnGuardar.Visible:=False;
  btnCancelar.Visible:=False;

end;

procedure TfrmMantenimientoProvincias.btnEditarClick(Sender: TObject);
begin
  inherited;
  edtDescripcionProvincia.Enabled:=True;
  DBGrid1.Enabled:=false;
  frmDatos.tblProvincia.Edit;

  edtFiltro.Enabled:=false;
  btnEditar.Visible:=false;
  btnBaja.Visible:=false;
  btnGuardar.Visible:=True;
  btnCancelar.Visible:=True;
  btnAceptar.Enabled:=False;
  btnNuevo.Enabled:=false;
end;

procedure TfrmMantenimientoProvincias.btnGuardarClick(Sender: TObject);
begin
  inherited;
  if not frmDatos.tblProvincia.RecordCount > 0 then abort;

  if (edtDescripcionProvincia.Text<>'') then
    begin
      frmDatos.qryModificarProvincia.Connection:=frmDatos.ZConnection1;
      frmDatos.qryModificarProvincia.SQL.Clear;
      frmDatos.qryModificarProvincia.SQL.Text:='select modificar_provincia ('
                                              + edtCodigoProvincia.Text + ','
                                              + '''' + edtDescripcionProvincia.Text + '''' + ')';
      frmDatos.qryModificarProvincia.Open;
    end
  else
    begin
      MsgBox('Error','Por favor complete todos los datos',mtError,['Aceptar'],0);
      Abort;
    end;

  edtDescripcionProvincia.Enabled:=False;
  DBGrid1.Enabled:=True;

  edtFiltro.Enabled:=true;
  btnGuardar.Visible:=False;
  btnCancelar.Visible:=False;
  btnEditar.Visible:=true;
  btnBaja.Visible:=true;
  btnAceptar.Enabled:=True;
  btnNuevo.Enabled:=true;
end;

procedure TfrmMantenimientoProvincias.btnCancelarClick(Sender: TObject);
begin
  inherited;
  edtDescripcionProvincia.Enabled:=False;
  frmDatos.tblProvincia.Cancel;
  DBGrid1.Enabled:=True;

  edtFiltro.Enabled:=true;
  btnGuardar.Visible:=False;
  btnCancelar.Visible:=False;
  btnEditar.Visible:=true;
  btnBaja.Visible:=true;
  btnAceptar.Enabled:=True;
  btnNuevo.Enabled:=true;
end;

procedure TfrmMantenimientoProvincias.edtFiltroKeyUp(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  inherited;
  frmDatos.tblProvincia.Filter:='';
  frmDatos.tblProvincia.Filter:='descripcion_provincia LIKE ' + QuotedStr(edtFiltro.Text+'*');
  frmDatos.tblProvincia.Filtered:=True;
end;

procedure TfrmMantenimientoProvincias.btnAceptarClick(Sender: TObject);
begin
  inherited;
  Close;  
end;

procedure TfrmMantenimientoProvincias.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  inherited;
  If btnGuardar.Visible=true then
    abort
  else
    frmDatos.tblProvincia.Active:=false;
end;

procedure TfrmMantenimientoProvincias.btnNuevoClick(Sender: TObject);
begin
  inherited;
  frmNuevaProvincia.ShowModal;
end;

procedure TfrmMantenimientoProvincias.btnBajaClick(Sender: TObject);
begin
  inherited;
  if frmDatos.tblProvincia.RecordCount > 0 then
    begin
      frmDatos.qryBajaProvincia.Connection:=frmDatos.ZConnection1;
      frmDatos.qryBajaProvincia.SQL.Clear;
      frmDatos.qryBajaProvincia.SQL.Text:='select baja_provincia('
                                      + IntToStr(frmDatos.tblProvincia['cod_provincia']) + ')';
      try
        frmDatos.qryBajaProvincia.Open
      Except
          MsgBox('Error','Provincia en uso. Imposible eliminar',mtError,['Aceptar'],0);
      end;

      frmDatos.tblProvincia.Refresh;
    end;
end;

end.
